using System.Linq;

namespace CloudStorage.API.Entities
{
  /// <summary>
  /// Cloud Storage Table Storage data context
  /// </summary>
  public interface ITableDataContext : IEntityDataContext
  {
    /// <summary>
    /// 
    /// </summary>
    IQueryable<IEntity> Entities { get; }

    /// <summary>
    /// The name of the Table exposed as a public property.
    /// </summary>
    string Name { get; } 

    /// <summary>
    /// The Delete Table operation deletes the specified table and any data it contains.
    /// </summary>
    /// <param name="tableName">The name of the table to Delete</param>
    void DeleteTable(string tableName);

    /// <summary>
    /// Queries the Entities in the table
    /// </summary>
    void QueryEntities();
  }
}